import MindElixir from "mind-elixir";
import "mind-elixir/style";
import Data from "../data/test.json";
import * as UUid from "uuid";
function convertNode(node) {
  if (!node) {
    return null;
  }

  // 只保留 mind-elixir 需要的核心字段
  const converted = {
    topic: node.name || node.title || "未命名节点",
    id: node.nodeId || UUid.v4(),
    children: [],
  };

  // 递归转换子节点
  if (node.children && Array.isArray(node.children)) {
    converted.children = node.children
      .map((child) => convertNode(child))
      .filter(Boolean);
  }

  return converted;
}

function convertToMindElixirFormat(data) {
  if (!data || !data.rootNode) {
    console.error("Invalid data structure:", data);
    return MindElixir.new("根节点");
  }

  const result = {
    nodeData: convertNode(data.rootNode),
  };

  return result;
}

function initMindElixir(options) {
  try {
    const mind = new MindElixir(options);

    // 先尝试使用标准数据确保基本功能正常
    const standardData = MindElixir.new("临床推理框架");
    console.log("标准数据:", standardData);

    // 尝试使用我们的转换数据
    try {
      const convertedData = convertToMindElixirFormat(Data);
      console.log("转换后的数据:", convertedData);
      mind.init(convertedData);
      console.log("使用转换数据成功");
    } catch (error) {
      console.error("转换数据失败，使用标准数据:", error);
      mind.init(standardData);
    }

    return mind;
  } catch (error) {
    console.error("Error initializing MindElixir:", error);
    throw error;
  }
}

export { initMindElixir };
